Hvordan utvikle på MDB2
MDB2 utvikles i git, konvertert fra bzr vinteren 2012. For mer informasjon om git og grunnleggende bruk oppfordres følgende node: git
Lag en lokal kopi
Først tar vi en klone av master-branchen.
bruker@maskin:~/dev$ git clone /home/cassarossa/itk/felles/git/mdb2
Opprett mdb2/include/config.local.php etter malen under (husk å bruke mdb2_dev til utvikling!)
<?php /* MedlemsDB2 * © 2004-2007 ITK, Studentersamfundet i Trondhjem <itk@samfundet.no> * * Description: * Configuration and initialization. */ // Debug mode // 0 - Debug off, use for production // 2 - Debug on, use for development $config['debug'] = 2; // Mail address for error logging $config['error_mail'] = "bruker@samfundet.no"; $config['adressa_mail'] = "bruker@samfundet.no"; $config['semester'] = "10"; // Database $db_type = 'pgsql'; $db_host = 'sql.samfundet.no'; $db_port = 5432; $db_name = 'mdb2_dev'; $db_user = 'mdb2web'; $db_pass = ''; ?>
Sjekk inn som vanlig etter hver endring osv. Husk små commits! Vanlig arbeidsflyt:
bruker@maskin:~/dev/mdb2$ vim foo.php gjør endring bruker@maskin:~/dev/mdb2$ git commit -a skriv commitmelding bruker@maskin:~/dev/mdb2$ vim bar.pl gjør endring bruker@maskin:~/dev/mdb2$ git commit -a ad infidum bruker@maskin:~/dev/mdb2$ git push
Oppsett for sending av commit-eposter
Det er veldig greit for andre å følge med på utvikling som skjer ved at man sender epost når man koder noe nytt. Dette kan gjøres veldig greit ved å legge inn en epost-hook i git-configen din. (Det er allerede en sentral hook for når du pusher til stable.)
bruker@maskin:~/dev/mdb2$ ln -s /home/cassarossa/itk/felles/git/post-commit-email .git/hooks/post-commit bruker@maskin:~/dev/mdb2$ git config hooks.mailinglist itk-commits-mdb@samfundet.no bruker@maskin:~/dev/mdb2$ echo mdb2.$USER > .git/description
Det vil da bli sendt en epost hver du commiter noe til det aktuelle arkivet.
Sette opp utviklings-instans
Man setter gjerne opp en utviklings-instans på cirkus, og vi ønsker en url alá http://hermansc.mdb2.samfundet.no
Det er dog noen steg vi må igjennom for få dette til:
Apache-konfigurasjon
Kopier en fungerende config fra en annen på cirkus. De ligger i /etc/apache2/sites-available/ Endre brukernavnet i configen til deg selv, og pass på at DocumentRoot er riktig. NB! Hvis du planlegger å serve filene fra hjemmeområdet er det lurt på dobbeltsjekke at hjemmemappen din har permisson +x.
ACL-er
Husk å sette opp riktige rettigheter ved å følge noden acl permissions
For å legge til denne i sites-enabled bruker vi følgende:
bruker@maskin:~$ sudo a2ensite hermansc.mdb2.samfundet.no
DNS
Følg instruksjonene i DNS-noden.
Deretter reloader vi configen til Apache:
bruker@maskin:~$ sudo systemctl reload apache2
Verifiser at du får opp utviklingsmiljøet ditt ved å gå til http://brukernavn.mdb2.samfundet.no
Kerberos
Du har kanskje gjort det allerede, og innsett at passord/brukernavnet ditt ikke virker. Vi må sette opp egen Kerberos-keytab for utviklings-instansen din.
Under kan det være greit å godta defaults. Følg det som står i "Opprette Kerberos-keytab" i autentisering_og_autorisering-artikkelen
Deretter må vi endre slik at siden bruker din egen keytab, istedenfor medlem.samfundet.no sin. Den enkleste måten å gjøre dette på er å endre filnavn for lokal apache config fra .htaccess til f.eks. .htaccess-local (siden .htaccess-filene i repoet er satt til å bruke medlem.samfundet.no sin keytab), og å legge inn autentisering for hele /admin i vhost-configen. Dette gjør du ved å passe på at dette ligger i /etc/apache2/sites-available/mdb2-bruker.samfundet.no (endre til riktig navn for mdb2-bruker.keytab):
<Location /admin/> AuthType Kerberos KrbAuthRealms AD.SAMFUNDET.NO Krb5Keytab /etc/apache2/krb5/bruker.mdb2.keytab AuthName "Samfundets medlemsdatabase" require itkacl /web/medlemsdb </Location> AccessFileName .htaccess.local
Hvis du gjorde siste punkt er du nå ferdig. Hvis du isteden ønsker å bruke normale .htaccess-filer, og ikke endre navn på de, må du isteden endre alle .htaccess filer i ditt lokale repo, slik at de bruker riktig Kerberos oppsett. Problematisk nok er det ganske mange av dem, og vi finner alle ved:
bruker@maskin:~/dev/mdb2$ find . -name .htaccess
Deretter ønsker vi å endre alle instanser av medlem.keytab til mdb2-hermansc.keytab og gjør følgende for å endre alle mann alle:
bruker@maskin:~/dev/mdb2$ find . -name .htaccess | xargs sed -i 's/medlem.keytab/hermansc.mdb2.keytab/'
Du skal ikke commite disse .htaccess-filene til repo. Når du kjører pull kan du ikke ha endringer som ikke er commited, så du må derfor kjøre git stash (etter du har commited alle andre filer) før du puller. Etter pull kjører du git stash pop for å få tilbake de endrede .htaccess-filene.
Voilá
https
Vi har lyst til å bruke https, se noden om Let's Encrypt
Når du har utviklet det du vil
Det første du må gjøre er å forsikre deg om at det ikke er endringer i det offisielle MDB2-treet som har skjedd mens du utviklet, så kjør en update av mainline og gjør en merge fra mainline:
bruker@maskin:~/dev/mdb2$ git commit skriv inn commitmelding bruker@maskin:~/dev/mdb2$ git pull bruker@maskin:~/dev/mdb2$ git push
Er det konflikter eller andre endringer under pull/push, løs opp og commit.
Prøv å gjøre commit-meldingene dine rimelig informative! Bare «merge fra –bruker» er veldig lite nyttig, prøv å få med i korte trekk hva som faktisk er skjedd.
Produksjonssetting
Nå som MDB2-treet er i orden, kan du ssh-e til cirkus, som hoster MDB, og sette den nye versjonen i produksjon:
bruker@cirkus:~$ cd /var/www/samfundet.no/medlem bruker@cirkus:~$ git pull
Produksjonssetting av Kortsys
Kortsys2s filer ligger på brukeren rita sitt hjemmeområde. På cassarossa:
bruker@cassarossa:~> sudo su - rita; rita@cassarossa:~> cd ~/mdb2 rita@cassarossa:~> git pull
Voila.
Eldre/legacy informasjon
Satt ned hit etter konvertering til git, vinteren 2012:
Vi har et offisielt MDB2-repository som inneholder den kopien medlem.samfundet.no til en hver tid skal kjøre. Brukeren «mdb2» har dette treet to steder; en på cassarossa:/home/cassarossa/itk/mdb2/mdb2.bzr, og en på cirkus:/var/www/samfundet.no/medlem (som er medlem.samfundet.no). (Det ligger en symlink til sistnevnte på /home/cassarossa/itk/mdb2/web.)
Katalogen ~mdb2/mdb2 er det gamle baz-arkivet, som av sikkerhetsmessige og historiske årsaker ligger igjen. På samme måte er cirkus:/var/www/samfundet.no/mdb2/mdb2.baz det gamle baz-treet.
Lenker: Start, arch, atir, billig v1, hvordan utvikle, billig, hvordan utvikle, kortsys2, medlemsdb2, medlemsdb2rapporter, medlemsdb2unix, robokop hvordan utvikle, uka-no, hvordan utvikle
Epost: itk@samfundet.no | Telefon: 992 15 925 | Sist endret: 2023-09-18 18:41 | Revisjon: 54 (historie, blame) | Totalt: 1899 kB | Rediger